home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / bbs / mfm_111b.zip / RENFIND.PAS < prev    next >
Pascal/Delphi Source File  |  1992-01-07  |  4KB  |  105 lines

  1. {========================================================================}
  2. Function ValidFileName(FileName : String) : Boolean;
  3.   Begin
  4.     If (Pos('.',FileName) <= 9)
  5.     And (Rpos('.',FileName) <= 4)
  6.     And (Length(FileName) > 0)
  7.     And (Copy(FileName,1,1) <> '.') Then
  8.     Begin
  9.       ValidFileName := True;
  10.     End
  11.     Else
  12.     Begin
  13.       ValidFileName := False;
  14.     End;
  15.   End;
  16. {========================================================================}
  17. Procedure RenameFile;
  18.   Var
  19.     NewFileName : String[12];
  20.     FileToRename : File;
  21.     Rfc : Char;
  22.   Begin
  23.     If CurrentEntry^.TypeOfRecord = FileRecord Then
  24.     Begin
  25.       AnsiGotoXY(25,1); AnsiClearToEOL;
  26.       Write('Enter file name to rename '+CurrentEntry^.FileName+' to: ');
  27.       OffSet := 31 + Length(CurrentEntry^.FileName);
  28.       NewFileName := UpperString(EditLine('',12,25,Offset));
  29.       If ValidFileName(NewFileName) Then
  30.       Begin
  31.         FindFirst(FileAreaPath+NewFileName,AnyFile,DirInfo);
  32.         If DosError <> 0 Then
  33.         Begin
  34.           AnsiGotoXY(25,1); AnsiClearToEOL;
  35.           Write('Rename '+CurrentEntry^.FileName+' to '+NewFileName+' (Y/N)? ');
  36.           Repeat
  37.             Gbx := GetInput;
  38.             Rfc := Upcase(Chr(Gbx));
  39.           Until Rfc In ['N','Y'];
  40.           Write(Rfc);
  41.           If Rfc = 'Y' Then
  42.           Begin
  43.             Altered := True;
  44.             Assign(FileToRename,FileAreaPath+CurrentEntry^.FileName);
  45.             Rename(FileToRename,FileAreaPath+NewFileName);
  46.             CurrentEntry^.FileName := NewFileName;
  47.             NextPrintEntry := CurrentEntry;
  48.             DisplayRecord(Row); DisplayCurrentLocation;
  49.           End;
  50.         End;
  51.       End;
  52.       AnsiGotoXY(24,80);
  53.     End;
  54.   End;
  55. {========================================================================}
  56. Procedure FindString(TypeOfSearch : Char);
  57.   Var
  58.     Found : Boolean;
  59.     Counter : Byte;
  60.   Begin
  61.     AnsiGotoXY(25,1); AnsiClearToEOL;
  62.     Write('Enter string to search for: '+StringToFind);
  63.     StringToFind := UpperString(EditLine(StringToFind,12,25,28));
  64.     NextPrintEntry := CurrentEntry; Found := False;
  65.     While (Not Found) And (NextPrintEntry^.NextEntry <> NIL) Do
  66.     Begin
  67.       NextPrintEntry := NextPrintEntry^.NextEntry;
  68.       If Pos(StringToFind,UpperString(NextPrintEntry^.FileName)) > 0 Then Found := True;
  69.       Case TypeOfSearch Of
  70.         'B' : Begin
  71.                 If Pos(StringToFind,UpperString(NextPrintEntry^.FileName)) > 0 Then Found := True;
  72.                 If Pos(StringToFind,UpperString(NextPrintEntry^.Description)) > 0 Then Found := True;
  73.               End;
  74.         'D' : Begin
  75.                 If Pos(StringToFind,UpperString(NextPrintEntry^.Description)) > 0 Then Found := True;
  76.               End;
  77.         'F' : Begin
  78.                 If Pos(StringToFind,UpperString(NextPrintEntry^.FileName)) > 0 Then Found := True;
  79.               End;
  80.       End;
  81.     End;
  82.     If Found Then
  83.     Begin
  84.       Counter := 10;
  85.       CurrentEntry := NextPrintEntry;
  86.       While (Counter > 1) And (NextPrintEntry^.PrevEntry <> NIL) Do
  87.       Begin
  88.         Dec(Counter);
  89.         NextPrintEntry := NextPrintEntry^.PrevEntry;
  90.       End;
  91.       TopEntry := NextPrintEntry;
  92.       AnsiGotoXY(25,1); AnsiClearToEOL;
  93.       Write(StringToFind+' found!');
  94.       Row := 11 - Counter;
  95.       DisplayScreen;
  96.     End
  97.     Else
  98.     Begin
  99.       AnsiGotoXY(25,1); AnsiClearToEOL;
  100.       Write(StringToFind+' NOT found!');
  101.       DisplayCurrentLocation;
  102.     End;
  103.   End;
  104. {========================================================================}
  105.